/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jmysql.CArea;
import validaciones.ValidacionData;

/**
 *
 * @author dblack
 */
public class CNuevaArea extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request, response);
    }
   
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
         
        String n_nomarea=request.getParameter("n_nomarea").trim().toLowerCase();
	String n_descripcion=request.getParameter("n_descripcion").trim();
	String n_ubicacion=request.getParameter("n_ubicacion").trim();

	ValidacionData validacion=new ValidacionData();
	//10 datos aceptados
	//20 significa nombre de area repetido
		
	//campos vacios
	if(validacion.correcto&&n_descripcion.length()==0)
            validacion.SetValores("1", "n_descripcion", "el campo no puede ser vacío", false);
			
		//Expresiones regulares
	if(validacion.correcto&&!n_nomarea.matches("^([a-zA-Z])[a-z0-9_]{3,70}$"))
            validacion.SetValores("2", "n_nomarea", "el campo contiene valores incorrectos / la longitud no es la permitida", false);

        PrintWriter out = response.getWriter();		
	response.setContentType("application/json");
		//vacio la ubicacion
	if(validacion.correcto&&n_ubicacion.length()==0)
            n_ubicacion="-";
		
	if(validacion.correcto){   
            CArea ca=new CArea();
            if(ca.Existe(n_nomarea))
		validacion.SetValores("20", "n_nomarea", "este nombre de área ya existe en el sistema", false);
            else//Ingresamos de una vez
            {
		if(!ca.AgregarArea(n_nomarea, n_descripcion, n_ubicacion))
                    validacion.SetValores("20", "n_nomarea", "error de conexión en la base de datos", false);
            }	
	}
		
    	if(validacion.correcto)//todo ha pasado con éxito
            validacion.SetValores("10", "-", "exito!!!", true);
		
        out.print(validacion.getJSON());
            out.close();
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
